<!DOCTYPE html>
<html>
  <head>
    <title>CSS Parser - auto-close for unexpected EOF</title>
    <script src="../../resources/testharness.js"></script>
    <script src="../../resources/testharnessreport.js"></script>
    <style>
      div {}
      div {}
    </style>
  </head>
  <body>
    <div id="qs"><i class="x"></i><b></b></div>
    <script>
      var sheet = document.styleSheets[0];
      var rules = sheet.cssRules;

      test(function(){
        // internal_decls
        rules[0].style.cssText = "width: 200px; color: rgb(10, 20, 30";
        assert_equals(rules[0].style.width, "200px", "Width not set correctly.");
        assert_equals(rules[0].style.color, "rgb(10, 20, 30)", "Color not set correctly");
      }, "Unexpected EOF - CSSStyleDeclaration.cssText missing ')'");

      test(function(){
        // internal_value
        rules[0].style.color = "rgba(0, 0, 0, 0.2";
        assert_equals(rules[0].style.color, "rgba(0, 0, 0, 0.2)", "rgba value not set correctly");
      }, "Unexpected EOF - CSSStyleDeclaration.color missing ')'");

      test(function(){
        // internal_selector
        rules[0].selectorText = "#x, [name=\"x";
        assert_equals(rules[0].selectorText, "#x, [name=\"x\"]");
      }, "Unexpected EOF - CSSStyleRule.selectorText missing ']'");

      test(function(){
        // internal_rule
        sheet.insertRule("span { color: green", 2);
        assert_equals(rules[2].cssText, "span { color: green; }");
      }, "Unexpected EOF - CSSStyleSheet.insertRule missing '}'");

      test(function(){
        // internal_selector
        assert_equals(document.querySelector("#qs [class=x").tagName, "I");
      }, "Unexpected EOF - querySelector missing ']'");

      test(function(){
        // internal_selector
        assert_equals(document.querySelector("#qs :nth-child(2").tagName, "B");
      }, "Unexpected EOF - querySelector missing ')'");
    </script>
  </body>
</html>
